#include "test.h"
#include <QDateTime>
#include <QDebug>

using namespace std;
Test::Test()
{
}

void Test::testDbAlbum()
{
//    bool ok = true;
//    DtAlbum alb ("AlbTest", 1999);
//    cout << "Test de la classe DbAlbum" << endl;
//    QList<DtAlbum> l;
//    l.append(alb);
//    DtAlbum alb2("AlbTest2", 0, -1, "TT");
//    l.append(alb2);
//    if(!DbAlbum::create(l))
//        ok = false;
//    cout << "Alb 1 getId() = " << alb.getId() << endl <<
//            "Alb 2 getId() = " << alb2.getId() << endl;
//    //if(!DbAlbum::destroy(l))
//    //    ok = false;
//    if(!ok)
//    {
//        cout << "Erreur avec la base de donnée sur Album" << endl;
//    }
//    else
//        cout << "Classe dbAlbum Ok" << endl;
}

void Test::testDbGenre()
{
//    bool ok = true;
//    DtGenre genre ("genreTest");
//    DbGenre dGenre;
//    QList<DtGenre> l;
//    l.append(genre);
//    if(!dGenre.create(l))
//        ok = false;
//    //if(!dGenre.destroy(l))
//    //    ok = false;
//    if(!ok)
//    {
//        cout << "Erreur avec la base de donnée sur Genre" << endl;
//    } else
//        cout << "Classe DbGenre Ok" << endl;
}

void Test::testDbTrack()
{
//    bool ok = true;
//    cout << "Test de la classe DbTrack" << endl;
//    DtTrack track1("Test1");
//    DtTrack track2("Test2", "name", 10);
//    QList<DtTrack> l;
//    l.append(track1);
//    l.append(track2);
//    if(!DbTrack::create(l))
//        ok = false;
//    cout << track1.getId() << "   " << track2.getId() << endl;
//    //if(!DbTrack::destroy(l))
//    //    ok = false;
//    if(!ok)
//    {
//        cout << "Erreur avec la base de donnée sur Track" << endl;
//    } else
//        cout << "Classe DbTrack Ok" << endl;
}

void Test::testDbArtist()
{
//    bool ok = true;
//    cout << "Test de la classe DbArtist" << endl;
//    DtArtist artist1("TestArtist1", false);
//    DtArtist artist2("TestArtist2", -1, true);
//    QList<DtArtist > l;
//    l.append(artist1);
//    l.append(artist2);
//    if(!DbArtist::create(l))
//        ok = false;
//    cout << artist1.getId() << "   " << artist2.getId() << endl;
//    //if(!DbArtist::destroy(l))
//    //    ok = false;
//    if(!ok)
//    {
//        cout << "Erreur avec la base de donnée sur artist" << endl;
//    } else
//        cout << "Classe DbArtist Ok" << endl;
}

void Test::testReadTag()
{
//    cout << "Test de la lecture des Tags" << endl;
//    QList<DtArtist *> lArt;
//    QList<DtAlbum> lAlb;
//    QList<DtGenre> lGen;
//    QList<DtTrack> lTra;
//    TaggedFile::file("/home/zephyrin/Music/test.mp3", lTra, lArt, lGen, lAlb);
//    TaggedFile::file("/home/zephyrin/Music/test.ogg", lTra, lArt, lGen, lAlb);
//    TaggedFile::file("/home/zephyrin/Music/test2.ogg", lTra, lArt, lGen, lAlb);
//    TaggedFile::file("/home/zephyrin/Music/test3.ogg", lTra, lArt, lGen, lAlb);
//    TaggedFile::file("/home/zephyrin/Music/test4.ogg", lTra, lArt, lGen, lAlb);
//    TaggedFile::file("/home/zephyrin/Music/test5.ogg", lTra, lArt, lGen, lAlb);
//    qDebug() << "Artist : " << lArt;
//    qDebug() << "Track : " << lTra;
//    qDebug() << "Album : " << lAlb.size();
//    qDebug() << "Genre : " << lGen;
//    cout << "Fin test" << endl;

    /*
    TagLib::MPEG::File mp3File("/home/zephyrin/Music/test.mp3");
    TagLib::Tag * mp3Tag;
    FrameList listOfMp3Frames;

    mp3Tag= mp3File.ID3v2Tag();
    if(mp3Tag)
    {
        listOfMp3Frames = ((TagLib::ID3v2::Tag *)mp3Tag)->frameListMap()["APIC"];//look for picture frames only
        if(!listOfMp3Frames.isEmpty())
        {
            FrameList::ConstIterator it= listOfMp3Frames.begin();
            for(; it != listOfMp3Frames.end() ; it++)
            {
                qDebug() << "picture Ok " << endl;

            }
        }
        else qDebug() <<"there seem to be no picture frames (APIC) frames in this file"<<endl<<endl;
    }
    else qDebug()<<"the file "<<"does not appear to have any mp3 tags"<<endl<<endl;
    */
}
